#!/usr/bin/python3
# _*_ coding: utf-8 _*_
#
# Copyright (C) 2024 - 2024 heihieyouheihei, Inc. All Rights Reserved 
#
# @Time    : 2024/8/16 3:55
# @Author  : Yuyun
# @File    : 任务执行时长.py
# @IDE     : PyCharm


"""
题目描述：
为了充分发挥GPU算力，需要尽可能多的将任务交给GPU执行，现在有一个任务数组，数组元素表示在这1秒内新增的任务个数且每秒都有新增任务，
假设GPU最多一次执行n个任务，一次执行耗时1秒，在保证GPU不空闲情况下，最少需要多长时间执行完成

输入描述：
第一个参数为GPU一次最多执行的任务个数，取值范围[1.10000]
第二个参数为任务数组长度，取值范围[1，10000]
第三个参数为任务数组，数字范围[1，10000]

输出描述：
执行完所有任务最少需要多少秒

示例1
输入：
3
5
1 2 3 4 5
输出： 6
说明：
一次最多执行3个任务，最少耗时6s

示例2
输入：
4
5
5 4 1 1 1
输出： 5
说明：
一次最多执行4个任务，最少耗时5s

"""




def min_time(n, task_array):
    time = 0
    remaining_tasks = 0
    for tasks in task_array:
        # 每一秒的总任务数 = 新增任务 + 上一秒未完成的任务
        total_tasks = tasks + remaining_tasks
        if total_tasks <= n:
            # 能处理所有任务，重置剩余任务
            remaining_tasks = 0
        else:
            # 处理 n 个任务，剩余任务累积到下一秒
            remaining_tasks = total_tasks - n
        time += 1
    # 如果处理完任务数组后还有剩余任务
    while remaining_tasks > 0:
        remaining_tasks -= n
        time += 1
    return time
num = int(input())
task_num = int(input())
tasks = list(map(int, input().split()))
print(min_time(num, tasks))
# x(tasks)
